Sistema numerico esadecimale
Il sistema numerico esadecimale (spesso abbreviato come esa o hex) è un sistema numerico posizionale in base 16, cioè che utilizza 16 simboli invece dei 10 del sistema numerico decimale tradizionale. Per l'esadecimale si usano in genere simboli da 0 a 9 e poi le lettere da A a F, per un totale di 16 simboli.Ecco una tabella che confronta le rappresentazioni binarie, esadecimali e decimali di alcuni numeri:
bin hex dec 0000 = 0 = 0 0001 = 1 = 1 0010 = 2 = 2 0011 = 3 = 3 0100 = 4 = 4 ... 1001 = 9 = 9 1010 = A = 10 1011 = B = 11 ... 1111 = F = 15Perciò il numero decimale 79, la cui rappresentazione binaria è 0100 1111, può essere scritto come 4F in esadecimale.
Il sistema esadecimale è molto usato in informatica, per la sua relazione diretta tra una cifra esadecimale e quattro cifre binarie. È spesso usato come intermediario, oppure come sistema numerico a sé stante. Per esempio, è possibile esprimere un byte con esattamente due cifre esadecimali (invece che con 3 decimali, e lasciando gran parte dell'intervallo non utilizzato).
Ci sono numerosi modi per denotare un numero come esadecimale, usati in differenti linguaggi di programmazione:
- Ada e VHDL racchiudono in numeri in "virgolette numeriche" che riportano anche la base, per esempio "16#5A3#" (Nota: Ada accetta questa notazione per tutte le basi dalla 2 alla 16, e per numeri sia interi che reali).
- Il C e i linguaggi con una sintassi simile (come il Java) usano il prefisso '0x', per esempio "0x5A3". Lo zero iniziale è presente perché i numeri devono iniziare con un carattere numerico, e la 'x' significa esadecimale (in caso di assenza della 'x', il numero è inteso come ottale.
- Il Pascal e alcuni Assembly indicano l'esadecimale con il suffisso 'h' (se il numero inizia con una lettera, si usa anche il prefisso '0'), per esempio "0A3Ch", "5A3h".
- Altri assembly (AT&T;, Motorola) e alcune versioni di BASIC usano il prefisso '$', per esempio "$5A3".
- Altre versioni del BASIC usano il prefisso "&h", per esempio "&h5A3".
- Quando usano sistemi di numerazione diversi dalla base dieci, o numerali in basi multiple, i matematici scrivono la base come pedice del numero, pe esempio "5A316" oppure "5A3SEDICI".
La parola "esadecimale" è peculiare, perché il prefisso esa è derivato dal Greco έξι (exi) (che significa sei), e decimale deriva dalla parola latina per dieci.
Il sistema esadecimale se la cava abbastanza bene con le frazioni:
Frazioni
1/2 | = | 0,8 |
1/3 | = | 0,5555 periodico |
1/4 | = | 0,4 |
1/5 | = | 0,3333 periodico |
1/6 | = | 0,2AAAA periodico |
1/8 | = | 0,2 |
1/A | = | 0,19999 periodico |
1/C | = | 0,15555 periodico |
1/F | = | 0,1111 periodico |
Poiché la base è un quadrato, le frazioni esadecimali sono periodiche molto più frequentemente di quelle decimali. I decimali si ripetono quando il denominatore ha un fattore primo che non si trova nella base. Nel caso dei numeri esadecimali, questo si verifica se e solo se il denominatore non è una potenza di due.